---
title: account_hook.proto
hide_title: true
---

import { ProtoMessage, ProtoServiceMethod, ProtoEnum } from '@theme/ProtoFile';

# `account_hook.proto`
_**path** mgmt/v1alpha1/account_hook.proto_

_**package** mgmt.v1alpha1_



---

## Messages


### `AccountHook`
<ProtoMessage key={0} message={{"name":"AccountHook","longName":"AccountHook","fullName":"mgmt.v1alpha1.AccountHook","description":"","hasExtensions":false,"hasFields":true,"hasOneofs":false,"extensions":[],"fields":[{"name":"id","description":"The unique identifier of this hook.","label":"","type":"string","longType":"string","fullType":"string","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""},{"name":"name","description":"Name of the hook for display/reference.","label":"","type":"string","longType":"string","fullType":"string","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""},{"name":"description","description":"Description of what this hook does.","label":"","type":"string","longType":"string","fullType":"string","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""},{"name":"account_id","description":"The unique identifier of the account this hook belongs to.","label":"","type":"string","longType":"string","fullType":"string","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""},{"name":"events","description":"The events that will trigger this hook.","label":"repeated","type":"AccountHookEvent","longType":"AccountHookEvent","fullType":"mgmt.v1alpha1.AccountHookEvent","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":"","typeLink":"/api/mgmt/v1alpha1/account_hook.proto#accounthookevent"},{"name":"config","description":"Hook-type specific configuration.","label":"","type":"AccountHookConfig","longType":"AccountHookConfig","fullType":"mgmt.v1alpha1.AccountHookConfig","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":"","typeLink":"/api/mgmt/v1alpha1/account_hook.proto#accounthookconfig"},{"name":"created_by_user_id","description":"The user that created this hook.","label":"","type":"string","longType":"string","fullType":"string","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""},{"name":"created_at","description":"The time this hook was created.","label":"","type":"Timestamp","longType":"google.protobuf.Timestamp","fullType":"google.protobuf.Timestamp","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""},{"name":"updated_by_user_id","description":"The user that last updated this hook.","label":"","type":"string","longType":"string","fullType":"string","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""},{"name":"updated_at","description":"The last time this hook was updated.","label":"","type":"Timestamp","longType":"google.protobuf.Timestamp","fullType":"google.protobuf.Timestamp","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""},{"name":"enabled","description":"Whether or not the hook is enabled.","label":"","type":"bool","longType":"bool","fullType":"bool","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""}]}} />


### `AccountHookConfig`
<ProtoMessage key={1} message={{"name":"AccountHookConfig","longName":"AccountHookConfig","fullName":"mgmt.v1alpha1.AccountHookConfig","description":"Hook-specific configuration","hasExtensions":false,"hasFields":true,"hasOneofs":true,"extensions":[],"fields":[{"name":"webhook","description":"Webhook-based hooks","label":"","type":"WebHook","longType":"AccountHookConfig.WebHook","fullType":"mgmt.v1alpha1.AccountHookConfig.WebHook","ismap":false,"isoneof":true,"oneofdecl":"config","defaultValue":"","typeLink":"/api/mgmt/v1alpha1/account_hook.proto#accounthookconfigwebhook"},{"name":"slack","description":"Slack-based hooks\n\nFuture: Discord, Teams, etc.","label":"","type":"SlackHook","longType":"AccountHookConfig.SlackHook","fullType":"mgmt.v1alpha1.AccountHookConfig.SlackHook","ismap":false,"isoneof":true,"oneofdecl":"config","defaultValue":"","typeLink":"/api/mgmt/v1alpha1/account_hook.proto#accounthookconfigslackhook"}]}} />


### `AccountHookConfig.SlackHook`
<ProtoMessage key={2} message={{"name":"SlackHook","longName":"AccountHookConfig.SlackHook","fullName":"mgmt.v1alpha1.AccountHookConfig.SlackHook","description":"Slack hook configuration","hasExtensions":false,"hasFields":true,"hasOneofs":false,"extensions":[],"fields":[{"name":"channel_id","description":"The Slack channel id to post messages to.","label":"","type":"string","longType":"string","fullType":"string","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""}]}} />


### `AccountHookConfig.WebHook`
<ProtoMessage key={3} message={{"name":"WebHook","longName":"AccountHookConfig.WebHook","fullName":"mgmt.v1alpha1.AccountHookConfig.WebHook","description":"Webhook-specific configuration","hasExtensions":false,"hasFields":true,"hasOneofs":false,"extensions":[],"fields":[{"name":"url","description":"The webhook URL to send the event to.","label":"","type":"string","longType":"string","fullType":"string","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""},{"name":"secret","description":"The secret to use for the webhook.","label":"","type":"string","longType":"string","fullType":"string","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""},{"name":"disable_ssl_verification","description":"Whether to disable SSL verification for the webhook.","label":"","type":"bool","longType":"bool","fullType":"bool","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""}]}} />


### `CreateAccountHookRequest`
<ProtoMessage key={4} message={{"name":"CreateAccountHookRequest","longName":"CreateAccountHookRequest","fullName":"mgmt.v1alpha1.CreateAccountHookRequest","description":"","hasExtensions":false,"hasFields":true,"hasOneofs":false,"extensions":[],"fields":[{"name":"account_id","description":"The account ID to create the hook for.","label":"","type":"string","longType":"string","fullType":"string","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""},{"name":"hook","description":"The new account hook configuration.","label":"","type":"NewAccountHook","longType":"NewAccountHook","fullType":"mgmt.v1alpha1.NewAccountHook","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":"","typeLink":"/api/mgmt/v1alpha1/account_hook.proto#newaccounthook"}]}} />


### `CreateAccountHookResponse`
<ProtoMessage key={5} message={{"name":"CreateAccountHookResponse","longName":"CreateAccountHookResponse","fullName":"mgmt.v1alpha1.CreateAccountHookResponse","description":"","hasExtensions":false,"hasFields":true,"hasOneofs":false,"extensions":[],"fields":[{"name":"hook","description":"The newly created account hook.","label":"","type":"AccountHook","longType":"AccountHook","fullType":"mgmt.v1alpha1.AccountHook","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":"","typeLink":"/api/mgmt/v1alpha1/account_hook.proto#accounthook"}]}} />


### `DeleteAccountHookRequest`
<ProtoMessage key={6} message={{"name":"DeleteAccountHookRequest","longName":"DeleteAccountHookRequest","fullName":"mgmt.v1alpha1.DeleteAccountHookRequest","description":"","hasExtensions":false,"hasFields":true,"hasOneofs":false,"extensions":[],"fields":[{"name":"id","description":"The ID of the hook to delete.","label":"","type":"string","longType":"string","fullType":"string","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""}]}} />


### `DeleteAccountHookResponse`
<ProtoMessage key={7} message={{"name":"DeleteAccountHookResponse","longName":"DeleteAccountHookResponse","fullName":"mgmt.v1alpha1.DeleteAccountHookResponse","description":"","hasExtensions":false,"hasFields":true,"hasOneofs":false,"extensions":[],"fields":[{"name":"hook","description":"The deleted account hook.","label":"","type":"AccountHook","longType":"AccountHook","fullType":"mgmt.v1alpha1.AccountHook","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":"","typeLink":"/api/mgmt/v1alpha1/account_hook.proto#accounthook"}]}} />


### `GetAccountHookRequest`
<ProtoMessage key={8} message={{"name":"GetAccountHookRequest","longName":"GetAccountHookRequest","fullName":"mgmt.v1alpha1.GetAccountHookRequest","description":"","hasExtensions":false,"hasFields":true,"hasOneofs":false,"extensions":[],"fields":[{"name":"id","description":"The ID of the hook to retrieve.","label":"","type":"string","longType":"string","fullType":"string","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""}]}} />


### `GetAccountHookResponse`
<ProtoMessage key={9} message={{"name":"GetAccountHookResponse","longName":"GetAccountHookResponse","fullName":"mgmt.v1alpha1.GetAccountHookResponse","description":"","hasExtensions":false,"hasFields":true,"hasOneofs":false,"extensions":[],"fields":[{"name":"hook","description":"The account hook.","label":"","type":"AccountHook","longType":"AccountHook","fullType":"mgmt.v1alpha1.AccountHook","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":"","typeLink":"/api/mgmt/v1alpha1/account_hook.proto#accounthook"}]}} />


### `GetAccountHooksRequest`
<ProtoMessage key={10} message={{"name":"GetAccountHooksRequest","longName":"GetAccountHooksRequest","fullName":"mgmt.v1alpha1.GetAccountHooksRequest","description":"","hasExtensions":false,"hasFields":true,"hasOneofs":false,"extensions":[],"fields":[{"name":"account_id","description":"The account ID to retrieve hooks for.","label":"","type":"string","longType":"string","fullType":"string","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""}]}} />


### `GetAccountHooksResponse`
<ProtoMessage key={11} message={{"name":"GetAccountHooksResponse","longName":"GetAccountHooksResponse","fullName":"mgmt.v1alpha1.GetAccountHooksResponse","description":"","hasExtensions":false,"hasFields":true,"hasOneofs":false,"extensions":[],"fields":[{"name":"hooks","description":"The list of account hooks.","label":"repeated","type":"AccountHook","longType":"AccountHook","fullType":"mgmt.v1alpha1.AccountHook","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":"","typeLink":"/api/mgmt/v1alpha1/account_hook.proto#accounthook"}]}} />


### `GetActiveAccountHooksByEventRequest`
<ProtoMessage key={12} message={{"name":"GetActiveAccountHooksByEventRequest","longName":"GetActiveAccountHooksByEventRequest","fullName":"mgmt.v1alpha1.GetActiveAccountHooksByEventRequest","description":"","hasExtensions":false,"hasFields":true,"hasOneofs":false,"extensions":[],"fields":[{"name":"account_id","description":"The account ID to retrieve hooks for.","label":"","type":"string","longType":"string","fullType":"string","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""},{"name":"event","description":"The event to retrieve hooks for.\nA specific event will return hooks that are listening to that specific event as well as wildcard hooks.\nIf you want to retrieve only wildcard hooks, use ACCOUNT_HOOK_EVENT_UNSPECIFIED.","label":"","type":"AccountHookEvent","longType":"AccountHookEvent","fullType":"mgmt.v1alpha1.AccountHookEvent","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":"","typeLink":"/api/mgmt/v1alpha1/account_hook.proto#accounthookevent"}]}} />


### `GetActiveAccountHooksByEventResponse`
<ProtoMessage key={13} message={{"name":"GetActiveAccountHooksByEventResponse","longName":"GetActiveAccountHooksByEventResponse","fullName":"mgmt.v1alpha1.GetActiveAccountHooksByEventResponse","description":"","hasExtensions":false,"hasFields":true,"hasOneofs":false,"extensions":[],"fields":[{"name":"hooks","description":"The list of active account hooks.","label":"repeated","type":"AccountHook","longType":"AccountHook","fullType":"mgmt.v1alpha1.AccountHook","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":"","typeLink":"/api/mgmt/v1alpha1/account_hook.proto#accounthook"}]}} />


### `GetSlackConnectionUrlRequest`
<ProtoMessage key={14} message={{"name":"GetSlackConnectionUrlRequest","longName":"GetSlackConnectionUrlRequest","fullName":"mgmt.v1alpha1.GetSlackConnectionUrlRequest","description":"","hasExtensions":false,"hasFields":true,"hasOneofs":false,"extensions":[],"fields":[{"name":"account_id","description":"The account ID to retrieve the Slack connection URL for.","label":"","type":"string","longType":"string","fullType":"string","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""}]}} />


### `GetSlackConnectionUrlResponse`
<ProtoMessage key={15} message={{"name":"GetSlackConnectionUrlResponse","longName":"GetSlackConnectionUrlResponse","fullName":"mgmt.v1alpha1.GetSlackConnectionUrlResponse","description":"","hasExtensions":false,"hasFields":true,"hasOneofs":false,"extensions":[],"fields":[{"name":"url","description":"The Slack connection URL.","label":"","type":"string","longType":"string","fullType":"string","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""}]}} />


### `HandleSlackOAuthCallbackRequest`
<ProtoMessage key={16} message={{"name":"HandleSlackOAuthCallbackRequest","longName":"HandleSlackOAuthCallbackRequest","fullName":"mgmt.v1alpha1.HandleSlackOAuthCallbackRequest","description":"","hasExtensions":false,"hasFields":true,"hasOneofs":false,"extensions":[],"fields":[{"name":"state","description":"The Slack state.","label":"","type":"string","longType":"string","fullType":"string","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""},{"name":"code","description":"The Slack code.","label":"","type":"string","longType":"string","fullType":"string","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""}]}} />


### `HandleSlackOAuthCallbackResponse`
<ProtoMessage key={17} message={{"name":"HandleSlackOAuthCallbackResponse","longName":"HandleSlackOAuthCallbackResponse","fullName":"mgmt.v1alpha1.HandleSlackOAuthCallbackResponse","description":"","hasExtensions":false,"hasFields":false,"hasOneofs":false,"extensions":[],"fields":[]}} />


### `IsAccountHookNameAvailableRequest`
<ProtoMessage key={18} message={{"name":"IsAccountHookNameAvailableRequest","longName":"IsAccountHookNameAvailableRequest","fullName":"mgmt.v1alpha1.IsAccountHookNameAvailableRequest","description":"","hasExtensions":false,"hasFields":true,"hasOneofs":false,"extensions":[],"fields":[{"name":"account_id","description":"The account ID to check the name for.","label":"","type":"string","longType":"string","fullType":"string","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""},{"name":"name","description":"The name to check.","label":"","type":"string","longType":"string","fullType":"string","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""}]}} />


### `IsAccountHookNameAvailableResponse`
<ProtoMessage key={19} message={{"name":"IsAccountHookNameAvailableResponse","longName":"IsAccountHookNameAvailableResponse","fullName":"mgmt.v1alpha1.IsAccountHookNameAvailableResponse","description":"","hasExtensions":false,"hasFields":true,"hasOneofs":false,"extensions":[],"fields":[{"name":"is_available","description":"Whether the name is available.","label":"","type":"bool","longType":"bool","fullType":"bool","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""}]}} />


### `NewAccountHook`
<ProtoMessage key={20} message={{"name":"NewAccountHook","longName":"NewAccountHook","fullName":"mgmt.v1alpha1.NewAccountHook","description":"","hasExtensions":false,"hasFields":true,"hasOneofs":false,"extensions":[],"fields":[{"name":"name","description":"Name of the hook for display/reference.","label":"","type":"string","longType":"string","fullType":"string","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""},{"name":"description","description":"Description of what this hook does.","label":"","type":"string","longType":"string","fullType":"string","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""},{"name":"events","description":"The events that will trigger this hook.","label":"repeated","type":"AccountHookEvent","longType":"AccountHookEvent","fullType":"mgmt.v1alpha1.AccountHookEvent","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":"","typeLink":"/api/mgmt/v1alpha1/account_hook.proto#accounthookevent"},{"name":"config","description":"Hook-type specific configuration.","label":"","type":"AccountHookConfig","longType":"AccountHookConfig","fullType":"mgmt.v1alpha1.AccountHookConfig","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":"","typeLink":"/api/mgmt/v1alpha1/account_hook.proto#accounthookconfig"},{"name":"enabled","description":"Whether or not the hook is enabled.","label":"","type":"bool","longType":"bool","fullType":"bool","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""}]}} />


### `SendSlackMessageRequest`
<ProtoMessage key={21} message={{"name":"SendSlackMessageRequest","longName":"SendSlackMessageRequest","fullName":"mgmt.v1alpha1.SendSlackMessageRequest","description":"","hasExtensions":false,"hasFields":true,"hasOneofs":false,"extensions":[],"fields":[{"name":"account_hook_id","description":"The account hook ID to send the Slack message to.","label":"","type":"string","longType":"string","fullType":"string","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""},{"name":"event","description":"The marshaled event that was emitted by the worker.","label":"","type":"bytes","longType":"bytes","fullType":"bytes","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""}]}} />


### `SendSlackMessageResponse`
<ProtoMessage key={22} message={{"name":"SendSlackMessageResponse","longName":"SendSlackMessageResponse","fullName":"mgmt.v1alpha1.SendSlackMessageResponse","description":"","hasExtensions":false,"hasFields":false,"hasOneofs":false,"extensions":[],"fields":[]}} />


### `SetAccountHookEnabledRequest`
<ProtoMessage key={23} message={{"name":"SetAccountHookEnabledRequest","longName":"SetAccountHookEnabledRequest","fullName":"mgmt.v1alpha1.SetAccountHookEnabledRequest","description":"","hasExtensions":false,"hasFields":true,"hasOneofs":false,"extensions":[],"fields":[{"name":"id","description":"The ID of the hook to enable/disable.","label":"","type":"string","longType":"string","fullType":"string","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""},{"name":"enabled","description":"Whether to enable or disable the hook.","label":"","type":"bool","longType":"bool","fullType":"bool","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""}]}} />


### `SetAccountHookEnabledResponse`
<ProtoMessage key={24} message={{"name":"SetAccountHookEnabledResponse","longName":"SetAccountHookEnabledResponse","fullName":"mgmt.v1alpha1.SetAccountHookEnabledResponse","description":"","hasExtensions":false,"hasFields":true,"hasOneofs":false,"extensions":[],"fields":[{"name":"hook","description":"The updated account hook.","label":"","type":"AccountHook","longType":"AccountHook","fullType":"mgmt.v1alpha1.AccountHook","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":"","typeLink":"/api/mgmt/v1alpha1/account_hook.proto#accounthook"}]}} />


### `TestSlackConnectionRequest`
<ProtoMessage key={25} message={{"name":"TestSlackConnectionRequest","longName":"TestSlackConnectionRequest","fullName":"mgmt.v1alpha1.TestSlackConnectionRequest","description":"","hasExtensions":false,"hasFields":true,"hasOneofs":false,"extensions":[],"fields":[{"name":"account_id","description":"The account ID to test the Slack connection for.","label":"","type":"string","longType":"string","fullType":"string","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""}]}} />


### `TestSlackConnectionResponse`
<ProtoMessage key={26} message={{"name":"TestSlackConnectionResponse","longName":"TestSlackConnectionResponse","fullName":"mgmt.v1alpha1.TestSlackConnectionResponse","description":"","hasExtensions":false,"hasFields":true,"hasOneofs":true,"extensions":[],"fields":[{"name":"has_configuration","description":"Whether there is an existing Slack configuration.","label":"","type":"bool","longType":"bool","fullType":"bool","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""},{"name":"test_response","description":"The response from the Slack API.","label":"optional","type":"Response","longType":"TestSlackConnectionResponse.Response","fullType":"mgmt.v1alpha1.TestSlackConnectionResponse.Response","ismap":false,"isoneof":true,"oneofdecl":"_test_response","defaultValue":"","typeLink":"/api/mgmt/v1alpha1/account_hook.proto#testslackconnectionresponseresponse"},{"name":"error","description":"The error message if the connection failed.","label":"optional","type":"string","longType":"string","fullType":"string","ismap":false,"isoneof":true,"oneofdecl":"_error","defaultValue":""}]}} />


### `TestSlackConnectionResponse.Response`
<ProtoMessage key={27} message={{"name":"Response","longName":"TestSlackConnectionResponse.Response","fullName":"mgmt.v1alpha1.TestSlackConnectionResponse.Response","description":"","hasExtensions":false,"hasFields":true,"hasOneofs":false,"extensions":[],"fields":[{"name":"url","description":"The URL of the Slack that is connected.","label":"","type":"string","longType":"string","fullType":"string","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""},{"name":"team","description":"The team name of the Slack that is connected.","label":"","type":"string","longType":"string","fullType":"string","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""}]}} />


### `UpdateAccountHookRequest`
<ProtoMessage key={28} message={{"name":"UpdateAccountHookRequest","longName":"UpdateAccountHookRequest","fullName":"mgmt.v1alpha1.UpdateAccountHookRequest","description":"","hasExtensions":false,"hasFields":true,"hasOneofs":false,"extensions":[],"fields":[{"name":"id","description":"The ID of the hook to update.","label":"","type":"string","longType":"string","fullType":"string","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""},{"name":"name","description":"Name of the hook for display/reference.","label":"","type":"string","longType":"string","fullType":"string","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""},{"name":"description","description":"Description of what this hook does.","label":"","type":"string","longType":"string","fullType":"string","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""},{"name":"events","description":"The events that will trigger this hook.","label":"repeated","type":"AccountHookEvent","longType":"AccountHookEvent","fullType":"mgmt.v1alpha1.AccountHookEvent","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":"","typeLink":"/api/mgmt/v1alpha1/account_hook.proto#accounthookevent"},{"name":"config","description":"Hook-type specific configuration.","label":"","type":"AccountHookConfig","longType":"AccountHookConfig","fullType":"mgmt.v1alpha1.AccountHookConfig","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":"","typeLink":"/api/mgmt/v1alpha1/account_hook.proto#accounthookconfig"},{"name":"enabled","description":"Whether or not the hook is enabled.","label":"","type":"bool","longType":"bool","fullType":"bool","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":""}]}} />


### `UpdateAccountHookResponse`
<ProtoMessage key={29} message={{"name":"UpdateAccountHookResponse","longName":"UpdateAccountHookResponse","fullName":"mgmt.v1alpha1.UpdateAccountHookResponse","description":"","hasExtensions":false,"hasFields":true,"hasOneofs":false,"extensions":[],"fields":[{"name":"hook","description":"The updated account hook.","label":"","type":"AccountHook","longType":"AccountHook","fullType":"mgmt.v1alpha1.AccountHook","ismap":false,"isoneof":false,"oneofdecl":"","defaultValue":"","typeLink":"/api/mgmt/v1alpha1/account_hook.proto#accounthook"}]}} />

---
## Enums


### `AccountHookEvent`
<ProtoEnum key={0} enumb={{"name":"AccountHookEvent","longName":"AccountHookEvent","fullName":"mgmt.v1alpha1.AccountHookEvent","description":"Enum of all possible events that can trigger an account hook.","values":[{"name":"ACCOUNT_HOOK_EVENT_UNSPECIFIED","number":"0","description":"If unspecified, hook will be triggered for all events."},{"name":"ACCOUNT_HOOK_EVENT_JOB_RUN_CREATED","number":"1","description":"Triggered when a job run is created."},{"name":"ACCOUNT_HOOK_EVENT_JOB_RUN_FAILED","number":"2","description":"Triggered when a job run fails."},{"name":"ACCOUNT_HOOK_EVENT_JOB_RUN_SUCCEEDED","number":"3","description":"Triggered when a job run succeeds."}]}} />

---
## Services


### `AccountHookService`




#### `GetAccountHooks`
<ProtoServiceMethod key={'GetAccountHooks-0'} method={{"name":"GetAccountHooks","description":"Retrieves all account hooks.","requestType":"GetAccountHooksRequest","requestLongType":"GetAccountHooksRequest","requestFullType":"mgmt.v1alpha1.GetAccountHooksRequest","requestStreaming":false,"responseType":"GetAccountHooksResponse","responseLongType":"GetAccountHooksResponse","responseFullType":"mgmt.v1alpha1.GetAccountHooksResponse","responseStreaming":false,"options":{"idempotency_level":"NO_SIDE_EFFECTS"},"requestTypeLink":"/api/mgmt/v1alpha1/account_hook.proto#getaccounthooksrequest","responseTypeLink":"/api/mgmt/v1alpha1/account_hook.proto#getaccounthooksresponse"}} />


#### `GetAccountHook`
<ProtoServiceMethod key={'GetAccountHook-1'} method={{"name":"GetAccountHook","description":"Retrieves a specific account hook.","requestType":"GetAccountHookRequest","requestLongType":"GetAccountHookRequest","requestFullType":"mgmt.v1alpha1.GetAccountHookRequest","requestStreaming":false,"responseType":"GetAccountHookResponse","responseLongType":"GetAccountHookResponse","responseFullType":"mgmt.v1alpha1.GetAccountHookResponse","responseStreaming":false,"options":{"idempotency_level":"NO_SIDE_EFFECTS"},"requestTypeLink":"/api/mgmt/v1alpha1/account_hook.proto#getaccounthookrequest","responseTypeLink":"/api/mgmt/v1alpha1/account_hook.proto#getaccounthookresponse"}} />


#### `CreateAccountHook`
<ProtoServiceMethod key={'CreateAccountHook-2'} method={{"name":"CreateAccountHook","description":"Creates a new account hook.","requestType":"CreateAccountHookRequest","requestLongType":"CreateAccountHookRequest","requestFullType":"mgmt.v1alpha1.CreateAccountHookRequest","requestStreaming":false,"responseType":"CreateAccountHookResponse","responseLongType":"CreateAccountHookResponse","responseFullType":"mgmt.v1alpha1.CreateAccountHookResponse","responseStreaming":false,"requestTypeLink":"/api/mgmt/v1alpha1/account_hook.proto#createaccounthookrequest","responseTypeLink":"/api/mgmt/v1alpha1/account_hook.proto#createaccounthookresponse"}} />


#### `UpdateAccountHook`
<ProtoServiceMethod key={'UpdateAccountHook-3'} method={{"name":"UpdateAccountHook","description":"Updates an existing account hook.","requestType":"UpdateAccountHookRequest","requestLongType":"UpdateAccountHookRequest","requestFullType":"mgmt.v1alpha1.UpdateAccountHookRequest","requestStreaming":false,"responseType":"UpdateAccountHookResponse","responseLongType":"UpdateAccountHookResponse","responseFullType":"mgmt.v1alpha1.UpdateAccountHookResponse","responseStreaming":false,"requestTypeLink":"/api/mgmt/v1alpha1/account_hook.proto#updateaccounthookrequest","responseTypeLink":"/api/mgmt/v1alpha1/account_hook.proto#updateaccounthookresponse"}} />


#### `DeleteAccountHook`
<ProtoServiceMethod key={'DeleteAccountHook-4'} method={{"name":"DeleteAccountHook","description":"Deletes an account hook.","requestType":"DeleteAccountHookRequest","requestLongType":"DeleteAccountHookRequest","requestFullType":"mgmt.v1alpha1.DeleteAccountHookRequest","requestStreaming":false,"responseType":"DeleteAccountHookResponse","responseLongType":"DeleteAccountHookResponse","responseFullType":"mgmt.v1alpha1.DeleteAccountHookResponse","responseStreaming":false,"requestTypeLink":"/api/mgmt/v1alpha1/account_hook.proto#deleteaccounthookrequest","responseTypeLink":"/api/mgmt/v1alpha1/account_hook.proto#deleteaccounthookresponse"}} />


#### `IsAccountHookNameAvailable`
<ProtoServiceMethod key={'IsAccountHookNameAvailable-5'} method={{"name":"IsAccountHookNameAvailable","description":"Checks if an account hook name is available.","requestType":"IsAccountHookNameAvailableRequest","requestLongType":"IsAccountHookNameAvailableRequest","requestFullType":"mgmt.v1alpha1.IsAccountHookNameAvailableRequest","requestStreaming":false,"responseType":"IsAccountHookNameAvailableResponse","responseLongType":"IsAccountHookNameAvailableResponse","responseFullType":"mgmt.v1alpha1.IsAccountHookNameAvailableResponse","responseStreaming":false,"requestTypeLink":"/api/mgmt/v1alpha1/account_hook.proto#isaccounthooknameavailablerequest","responseTypeLink":"/api/mgmt/v1alpha1/account_hook.proto#isaccounthooknameavailableresponse"}} />


#### `SetAccountHookEnabled`
<ProtoServiceMethod key={'SetAccountHookEnabled-6'} method={{"name":"SetAccountHookEnabled","description":"Enables or disables an account hook.","requestType":"SetAccountHookEnabledRequest","requestLongType":"SetAccountHookEnabledRequest","requestFullType":"mgmt.v1alpha1.SetAccountHookEnabledRequest","requestStreaming":false,"responseType":"SetAccountHookEnabledResponse","responseLongType":"SetAccountHookEnabledResponse","responseFullType":"mgmt.v1alpha1.SetAccountHookEnabledResponse","responseStreaming":false,"requestTypeLink":"/api/mgmt/v1alpha1/account_hook.proto#setaccounthookenabledrequest","responseTypeLink":"/api/mgmt/v1alpha1/account_hook.proto#setaccounthookenabledresponse"}} />


#### `GetActiveAccountHooksByEvent`
<ProtoServiceMethod key={'GetActiveAccountHooksByEvent-7'} method={{"name":"GetActiveAccountHooksByEvent","description":"Retrieves all active account hooks for a specific event.","requestType":"GetActiveAccountHooksByEventRequest","requestLongType":"GetActiveAccountHooksByEventRequest","requestFullType":"mgmt.v1alpha1.GetActiveAccountHooksByEventRequest","requestStreaming":false,"responseType":"GetActiveAccountHooksByEventResponse","responseLongType":"GetActiveAccountHooksByEventResponse","responseFullType":"mgmt.v1alpha1.GetActiveAccountHooksByEventResponse","responseStreaming":false,"options":{"idempotency_level":"NO_SIDE_EFFECTS"},"requestTypeLink":"/api/mgmt/v1alpha1/account_hook.proto#getactiveaccounthooksbyeventrequest","responseTypeLink":"/api/mgmt/v1alpha1/account_hook.proto#getactiveaccounthooksbyeventresponse"}} />


#### `GetSlackConnectionUrl`
<ProtoServiceMethod key={'GetSlackConnectionUrl-8'} method={{"name":"GetSlackConnectionUrl","description":"Retrieves the Slack connection url that allows a user to connect their Slack workspace to Neosync.","requestType":"GetSlackConnectionUrlRequest","requestLongType":"GetSlackConnectionUrlRequest","requestFullType":"mgmt.v1alpha1.GetSlackConnectionUrlRequest","requestStreaming":false,"responseType":"GetSlackConnectionUrlResponse","responseLongType":"GetSlackConnectionUrlResponse","responseFullType":"mgmt.v1alpha1.GetSlackConnectionUrlResponse","responseStreaming":false,"options":{"idempotency_level":"NO_SIDE_EFFECTS"},"requestTypeLink":"/api/mgmt/v1alpha1/account_hook.proto#getslackconnectionurlrequest","responseTypeLink":"/api/mgmt/v1alpha1/account_hook.proto#getslackconnectionurlresponse"}} />


#### `HandleSlackOAuthCallback`
<ProtoServiceMethod key={'HandleSlackOAuthCallback-9'} method={{"name":"HandleSlackOAuthCallback","description":"Handles the Slack OAuth callback.","requestType":"HandleSlackOAuthCallbackRequest","requestLongType":"HandleSlackOAuthCallbackRequest","requestFullType":"mgmt.v1alpha1.HandleSlackOAuthCallbackRequest","requestStreaming":false,"responseType":"HandleSlackOAuthCallbackResponse","responseLongType":"HandleSlackOAuthCallbackResponse","responseFullType":"mgmt.v1alpha1.HandleSlackOAuthCallbackResponse","responseStreaming":false,"requestTypeLink":"/api/mgmt/v1alpha1/account_hook.proto#handleslackoauthcallbackrequest","responseTypeLink":"/api/mgmt/v1alpha1/account_hook.proto#handleslackoauthcallbackresponse"}} />


#### `TestSlackConnection`
<ProtoServiceMethod key={'TestSlackConnection-10'} method={{"name":"TestSlackConnection","description":"Tests the Slack connection by using the stored access token to initiate an auth test api call to slack.","requestType":"TestSlackConnectionRequest","requestLongType":"TestSlackConnectionRequest","requestFullType":"mgmt.v1alpha1.TestSlackConnectionRequest","requestStreaming":false,"responseType":"TestSlackConnectionResponse","responseLongType":"TestSlackConnectionResponse","responseFullType":"mgmt.v1alpha1.TestSlackConnectionResponse","responseStreaming":false,"options":{"idempotency_level":"NO_SIDE_EFFECTS"},"requestTypeLink":"/api/mgmt/v1alpha1/account_hook.proto#testslackconnectionrequest","responseTypeLink":"/api/mgmt/v1alpha1/account_hook.proto#testslackconnectionresponse"}} />


#### `SendSlackMessage`
<ProtoServiceMethod key={'SendSlackMessage-11'} method={{"name":"SendSlackMessage","description":"For sending slack messages from the worker.","requestType":"SendSlackMessageRequest","requestLongType":"SendSlackMessageRequest","requestFullType":"mgmt.v1alpha1.SendSlackMessageRequest","requestStreaming":false,"responseType":"SendSlackMessageResponse","responseLongType":"SendSlackMessageResponse","responseFullType":"mgmt.v1alpha1.SendSlackMessageResponse","responseStreaming":false,"requestTypeLink":"/api/mgmt/v1alpha1/account_hook.proto#sendslackmessagerequest","responseTypeLink":"/api/mgmt/v1alpha1/account_hook.proto#sendslackmessageresponse"}} />


---


  